package atom.core3.spring.util;

import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;

public class SpringResource {
	
	//Spring还提供了一种更强大的Ant模式通配符匹配，从能一个路径匹配一批资源。
	 
    //Ant路径通配符支持“？”、“*”、“**”，注意通配符匹配不包括目录分隔符“/”：

    //  “?”：匹配一个字符，如“config?.xml”将匹配“config1.xml”；
    //  “*”：匹配零个或多个字符串，如“cn/*/config.xml”将匹配“cn/javass/config.xml”，但不匹配匹配“cn/config.xml”；而“cn/config-*.xml”将匹配“cn/config-dao.xml”；
    //  “**”：匹配路径中的零个或多个目录，如“cn/**/config.xml”将匹配“cn /config.xml”，也匹配“cn/javass/spring/config.xml”；而“cn/javass/config-**.xml”将匹配“cn/javass/config-dao.xml”，即把“**”当做两个“*”处理。
      
	
	//Spring在加载类路径资源时除了提供前缀“classpath:”的来支持加载一个Resource，
	//还提供一个前缀“classpath*:”来支持加载所有匹配的类路径Resource。
	
	
	//“classpath”： 用于加载类路径（包括jar包）中的一个且仅一个资源；对于多个匹配的也只返回一个，所以如果需要多个匹配的请考虑“classpath*:”前缀；
	//但实际上 classpath 和 classpath*一样
	public static void printPath() {
		try {
			ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
			// 只加载一个绝对匹配Resource，且通过ResourceLoader.getResource进行加载
			Resource[] resources = resolver.getResources("classpath:com/core/**/*.txt");
			for (int i = 0; i < resources.length; i++) {
				System.out.println(resources[i].getURL());
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
